import logging

import redis


class Config(object):
    """工程配置信息"""

    SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"

    # 数据库的配置信息
    SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://root:2323xx..@127.0.0.1:3306/mi_shop?charset=utf8mb4"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # redis配置
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # flask_session的配置信息
    SESSION_TYPE = "redis"  # 指定 session 保存到 redis 中
    SESSION_USE_SIGNER = True  # 让 cookie 中的 session_id 被加密签名处理
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 使用 redis 的实例
    PERMANENT_SESSION_LIFETIME = 86400  # session 的有效期，单位是秒


class DevelopementConfig(Config):
    """开发环境"""
    DEBUG = True
    # 日志等级
    LOG_LEVEL = logging.DEBUG
    # 　下面是SMTP(发送邮箱)服务器配置
    # 电子邮箱服务器的主机名或IP地址
    MAIL_SERVER = 'smtp.163.com'
    # 电子邮箱服务器的端口
    MAIL_PORT = 25
    # 使用ＴＬＳ启用传输层安全
    MAIL_USE_TLS = True  # 这里启用的是TLS协议,不是SSL(加密)协议，所以是25号端口
    # 自己的邮件账户用户名
    MAIL_USERNAME = '15658637193@163.com'
    # 邮件账户的密码,这个密码是指的授权码
    MAIL_PASSWORD = 'UICLCGSGYCETINDS'


class ProductionConfig(Config):
    """生产环境"""
    DEBUG = True
    # 生产环境等级是error
    LOG_LEVEL = logging.ERROR


# 定义配置字典
config = {
    "development": DevelopementConfig,
    "production": ProductionConfig
}
